package paycenter

import (
	"github.com/gogf/gf/container/gmap"
	"github.com/gogf/gf/database/gdb"
	"github.com/gogf/gf/encoding/gjson"
	"github.com/gogf/gf/frame/g"
	"github.com/gogf/gf/net/ghttp"
	"github.com/gogf/gf/util/gconv"
)

// 下单参数
type OrderPay struct {
	Mer_no       string `json:"mer_no"`          //是	string	-	平台分配给接入方的渠道编号	是
	Mer_order_no string `json:"mer_order_no"`    //是	string	100	接入方用户id	是
	pname        string `json:"pname"`           //是	string	255	接入方订单号	是
	pemail       string `json:"commodityAmount"` //是	string	-	支付金额，币种：INR 示例：“1200.01” 精确到两位小数
	// CommodityId string `json:"commodityId"` //是	string	-	支付金额，币种：INR 示例：“1200.01” 精确到两位小数
	Name   string `json:"-"` //是	string	20	用户姓名	否
	Email  string `json:"-"` //是	string	255	收款人邮箱，格式xxx@xxx.xxx	否
	Mobile string `json:"-"` //是	string	20	收款人手机，格式10位数字,不带地区码+91	否
	Sign   string `json:"-"` //是	string	string	md5签名，签名算法请参考签名（章节0）	否
}

type Fakgt struct {
	ID   int
	Name string
	Conf *gjson.Json
}

func (self *Fakgt) GetID() int {
	return self.ID
}
func (self *Fakgt) GetName() string {
	return self.Name
}

func (self *Fakgt) GetNotifyURL(payType string) string {
	return "/api/v1/" + gconv.String(self.ID) + "/" + payType + "/notify"
}

// 支付下单
func (self *Fakgt) GetPayOrder(record g.Map, r *ghttp.Request) {
	// 准备参数

	// 加密

	// 发送数据

	// 返回数据结果
}

// 支付下单回调
func (self *Fakgt) NotifyPay(r *ghttp.Request) {

}

// 提现下单
func (self *Fakgt) GetDrawOrder(order gdb.Record, r *ghttp.Request) {

}

// 提现下单回调
func (self *Fakgt) NotifyDraw(r *ghttp.Request) {

}

func (self *Fakgt) GetQuery(record gdb.Record) (*gmap.Map, error) {

	return gmap.New(true), nil
}

func (self *Fakgt) GetBalance() (g.List, error) {

	return nil, nil
}
